/**
 * 用户登录
 */
Parse.Cloud.define('login', async (req, res) => {
  const { username, password } = req.params
  try {
    const user = await new Parse.Query(Parse.User).equalTo('username', username).first()
    if (!user) {
      return res.error('没有该用户')
    }
    // 查找用户的角色
    const adminQuery = new Parse.Query(Parse.Role).equalTo('name', 'Admin').containedIn('users', [user])
    const backendQuery = new Parse.Query(Parse.Role).equalTo('name', 'Login').matchesQuery('roles', new Parse.Query(Parse.Role).containedIn('users', [user]))
    const count = await Parse.Query.or(adminQuery, backendQuery).count({useMasterKey: true})
    if (count === 0) {
      return res.error('该用户没有登录权限')
    }
    // 用户登录
    const currentUser = await Parse.User.logIn(username, password)
    const session = currentUser.getSessionToken()
    res.success(session)
  } catch (err) {
    console.log(err)
    res.error(err.message)
  }
})
